/*
    2020年5月18日10:55:47
    有一个线性表，采用带头结点的单链表L储存，设计一个算法使其逆置，要求不能建立新结点，
    只能通过现有结点的重新组合

*/
#ifndef NULL
#ifdef __cplusplus
#define NULL    0
#else  /* __cplusplus */
#define NULL    ((void *)0)
#endif  /* __cplusplus */
#endif  /* NULL */

typedef struct Node
{
    int data;
    struct Node *pNext;
} Node, *pList;

//头插法
void trans(pList L)
{
	pList p = L->pNext, q;
	L->pNext = NULL;
	while (p != NULL)
	{
		q = p->pNext;
		p->pNext = L->pNext;
		L->pNext = p;
		p = q;
	}
}